Transacting Pointer-based Accesses in an Object-based Software Transactional Memory System
نویسندگان
چکیده
Software transactional memory (STM) systems for objectoriented languages that allow relocating garbage collection (such as languages for the .NET platform, or Java) must decide how transactional metadata (i.e., fine-grained locks) is associated with objects. An obvious approach is to locate this metadata with the object, and move it when the object is moved. This approach becomes complicated if the platform allows interior pointers to heap objects, as .NET does: how do we find the transactional metadata that governs an access via an interior pointer? We present an approach that solves this problem via a combination of static and dynamic information. The most important goal of this solution is that it be pay-for-play: that programs that do not use transactions are impacted as little as possible.
منابع مشابه
A Section Based Program Analysis to Reduce Overhead of Detecting Unsynchronized Thread Communication
Most systems that test and verify parallel programs, such as deterministic execution engines, data race detectors and software transactional memory systems, require instrumenting loads and stores in an application. This can cause a very significant runtime and memory overhead compared to executing uninstrumented code. Multithreaded programming typically allows any thread to perform loads and st...
متن کاملFastLane: Software Transactional Memory Optimized for Low Numbers of Threads
Software transactional memory (STM) can lead to scalable implementations of concurrent programs, as the relative performance of an application increases with the number of threads that support it. However, the absolute performance is typically impaired by the overheads of transaction management and instrumented accesses to shared memory. This often leads a STM-based program with a low thread co...
متن کاملVerification of Transactional Memories that Support Non-Transactional Memory Accesses
A major challenge of Transactional memory implementations is dealing with memory accesses that occur outside of transactions. In previous work we showed how to specify transactional memory in terms of admissible interchanges of transaction operations, and gave proof rules for showing that an implementation satisfies its specification. However, we did not capture non-transactional memory accesse...
متن کاملLightweight Identification of Captured Memory for Software Transactional Memory
Software Transactional Memory (STM) implementations typically instrument each memory access within transactions with a call to an STM barrier to ensure the correctness of the transactions. Compared to simple memory accesses, STMbarriers are complex operations that add significant overhead to transactions doing many memory accesses. Thus, whereas STMs have shown good results for micro-benchmarks...
متن کاملMechanisms and interfaces for software-extended coherent shared memory
Software-extended systems use a combination of hardware and software to implement shared memory on large-scale multiprocessors. Hardware mechanisms accelerate common-case accesses, while software handles exceptional events. In order to provide fast memory access, this design strategy requires appropriate hardware mechanisms including caches, location-independent addressing, limited directories,...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2009